home *** CD-ROM | disk | FTP | other *** search
/ C/C++ Users Group Library 1996 July / C-C++ Users Group Library July 1996.iso / listings / v_13_02 / small / strstack.cpp < prev   
C/C++ Source or Header  |  1994-07-18  |  826b  |  41 lines

  1. /* Listing 2 */
  2.  
  3. class StrStack  {
  4.     char * itemPtrs[5U];
  5.     unsigned items;
  6.   public:
  7.     StrStack()  { items = 0U; }
  8.     int full() { return !(5U - items); }
  9.     unsigned depth()  { return items; }
  10.     int push(char * itemPtr);
  11.     char * top()
  12.         { return (items? itemPtrs[items-1] : 0); }
  13.     char * pop()
  14.         { return (items? itemPtrs[--items] : 0); }
  15. };
  16.  
  17. int StrStack::push(char * itemPtr)
  18. {
  19.     if (!full() && itemPtr)  {
  20.         itemPtrs[items++] = itemPtr;
  21.         return 1;
  22.     }
  23.     return 0;
  24. }
  25.  
  26. #include <iostream.h>
  27. #include <iomanip.h>
  28.  
  29. main()
  30. {
  31.     StrStack ToDo;
  32.  
  33.     ToDo.push("wash car");
  34.     ToDo.push("cut grass");
  35.     ToDo.push("buy groceries");
  36.     ToDo.push("cash paycheck");
  37.     while (ToDo.top())
  38.         cout << ToDo.pop() << endl;
  39.     return 0;
  40. }
  41.